/**
 * 该文件为客户端，用来实时向服务端发送字符
 */

#include "common.hpp"

int main()
{
    /**主要步骤:
     * 1.创建命名管道
     * 2.打开命名管道
     * 3.写入字符到命名管道当中
     * 4.关闭命名管道   
     * */
    int mk = mkfifo(namePipe,mode);
    if(mk == -1)
    {
        perror("mkfifo");
        exit(1);
    }
    int fd = open(namePipe,O_WRONLY);//写方式打开
    if(fd == -1)
    {
        perror("open");
        exit(1);
    }
    std::cout<<"开始输入字符:ctrl+c退出"<<std::endl;
    while(true)
    {
        system("stty raw");
        int c = getchar();
        system("stty -raw");
        if(c == 3)
        {
            std::cout<<"exit!"<<std::endl;
            break;
        }
        ssize_t n = write(fd,(char*)&c,sizeof(char));
        assert(n>=0);
        (void)n;/*消除未使用警告*/
    }
    close(fd);
    unlink(namePipe);
    return 0;
}